<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Service Provider Interface</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Service_Provider_Interface"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Service_Provider_Interface rootpage-Service_Provider_Interface skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Service Provider Interface</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<p>Ein <b>Service Provider Interface</b> (<b>SPI</b>) ist ein <a href="Application_Programming_Interface" class="mw-redirect" title="Application Programming Interface">Application Programming Interface</a> (API), das durch eine Drittkomponente implementiert werden soll. Es dient dazu, <a href="Framework" title="Framework">Framework</a>-Erweiterungen zu ermöglichen und trägt zur Entwicklung austauschbarer Komponenten bei.
</p>
<div class="mw-heading mw-heading2"><h2 id="Details">Details</h2></div>
<p>API werden meistens als provided interfaces verstanden, d. h. Schnittstellen, die durch die sie implementierende Komponente definiert werden. D. h. eine Komponente hat die Hoheit über die Interfacedefinition und stellt mindestens eine Implementation (meistens die einzige Implementation) zur Verfügung. Beispiele für provided interfaces sind alle öffentlich aufrufbaren proprietären und keinem Standard entsprechenden <a href="Representational_State_Transfer" title="Representational State Transfer">REST</a>-<a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a> der großen Cloudanbieter wie <a href="Amazon_Web_Services" title="Amazon Web Services">Amazon Web Services</a>, <a href="Microsoft_Azure" title="Microsoft Azure">Microsoft Azure</a> und <a href="Google_Cloud_Platform" title="Google Cloud Platform">Google Cloud Platform</a>.
</p><p>Ein SPI hingegen bezeichnet ein required interface, also eine Schnittstellenspezifikation, die von einer bestimmten davon abhängigen Komponente verlangt bzw. erwartet wird. Ein Programm, das <a href="Plug-in" title="Plug-in">Plug-ins</a> unterstützt, wird zum Beispiel required interfaces definieren, die von den Entwicklern von Plug-ins eingehalten werden müssen. Ebenso wird eine Komponente, die sich ihre Abhängigkeiten per <a href="Dependency_Injection" title="Dependency Injection">Dependency Injection</a> übergeben lässt, für jede Abhängigkeit ein required interface definieren, das die <a href="Syntax" title="Syntax">Syntax</a> und <a href="Semantik" title="Semantik">Semantik</a> (<a href="Kommunikationsprotokoll" title="Kommunikationsprotokoll">Kommunikationsprotokoll</a>) der Interaktion damit vorgibt.
</p></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-07-13" href="https://de.wikipedia.org/wiki/?title=Service_Provider_Interface&oldid=257877025">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>